package main

import "fmt"

//自定义类型和类型的别名
type myInt int         //自定义类型
type myString = string //类型别名

//自定义一个结构体
type student struct {
	name    string //默认为nil或类型0值
	age     int
	gender  string
	hobbies []string
}

func main() {
	var a myInt
	fmt.Printf("%T\n", a) //main.myInt  只要main包在 就可以使用

	var s myString
	fmt.Printf("%T\n", s) //string	临时起个别名  只是为了代码更清晰
	//rune 就是int32的别名

	//声明结构体类型的数据
	var stu1 student
	stu1.name = "conghucai" //操作结构体成员
	stu1.age = 23
	stu1.gender = "male"
	stu1.hobbies = []string{"eat", "wiewie", "sleep"}
	fmt.Println(stu1)        //{conghucai 23 male [eat wiewie sleep]}
	fmt.Printf("%T\n", stu1) //main.student

	//匿名结构体
	var strc1 struct {
		name   string
		number int
	}
	strc1.name = "haha"
	strc1.number = 1
	fmt.Println(strc1)
	fmt.Printf("%T\n", strc1) //struct { name string; number int }
}
